<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>I/O Pin Handling</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="kvaser.gif"/></td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__kv__io.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">I/O Pin Handling<div class="ingroups"><a class="el" href="group__grp__canlib.html">CANlib</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Functions related to handling I/O pins.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga0194114ea5bfcbf770d938b613ba87e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kv__io.html#ga0194114ea5bfcbf770d938b613ba87e6">kvIoGetNumberOfPins</a> (const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a> hnd, unsigned int *pinCount)</td></tr>
<tr class="separator:ga0194114ea5bfcbf770d938b613ba87e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa50d734d29488bea72f5d3808835d7d9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kv__io.html#gaa50d734d29488bea72f5d3808835d7d9">kvIoConfirmConfig</a> (const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a> hnd)</td></tr>
<tr class="separator:gaa50d734d29488bea72f5d3808835d7d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga851cb68946bf38686a065fccf11d6b42"><td class="memItemLeft" align="right" valign="top"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kv__io.html#ga851cb68946bf38686a065fccf11d6b42">kvIoPinGetInfo</a> (const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a> hnd, unsigned int pin, int item, void *buffer, const unsigned int bufsize)</td></tr>
<tr class="separator:ga851cb68946bf38686a065fccf11d6b42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga88dda296acccff6acbc979a94b961188"><td class="memItemLeft" align="right" valign="top"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kv__io.html#ga88dda296acccff6acbc979a94b961188">kvIoPinSetInfo</a> (const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a> hnd, unsigned int pin, int item, const void *buffer, const unsigned int bufsize)</td></tr>
<tr class="separator:ga88dda296acccff6acbc979a94b961188"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad5a1f760ce49861c5970764024a732c7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kv__io.html#gad5a1f760ce49861c5970764024a732c7">kvIoPinSetDigital</a> (const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a> hnd, unsigned int pin, unsigned int value)</td></tr>
<tr class="separator:gad5a1f760ce49861c5970764024a732c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa5699336bbf78ddbe430dee8658ca7b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kv__io.html#gaa5699336bbf78ddbe430dee8658ca7b3">kvIoPinGetDigital</a> (const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a> hnd, unsigned int pin, unsigned int *value)</td></tr>
<tr class="separator:gaa5699336bbf78ddbe430dee8658ca7b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaa8b56dd310525951aea002efa0d55ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kv__io.html#gaaa8b56dd310525951aea002efa0d55ef">kvIoPinGetOutputDigital</a> (const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a> hnd, unsigned int pin, unsigned int *value)</td></tr>
<tr class="separator:gaaa8b56dd310525951aea002efa0d55ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabb4bfa9d8f76d64065e03a9c95b7dace"><td class="memItemLeft" align="right" valign="top"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kv__io.html#gabb4bfa9d8f76d64065e03a9c95b7dace">kvIoPinSetRelay</a> (const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a> hnd, unsigned int pin, unsigned int value)</td></tr>
<tr class="separator:gabb4bfa9d8f76d64065e03a9c95b7dace"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26aaef6002a588a2ee56bdfc89a703df"><td class="memItemLeft" align="right" valign="top"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kv__io.html#ga26aaef6002a588a2ee56bdfc89a703df">kvIoPinGetOutputRelay</a> (const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a> hnd, unsigned int pin, unsigned int *value)</td></tr>
<tr class="separator:ga26aaef6002a588a2ee56bdfc89a703df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga38a215ebc548b0d201fe805c5a8b3797"><td class="memItemLeft" align="right" valign="top"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kv__io.html#ga38a215ebc548b0d201fe805c5a8b3797">kvIoPinSetAnalog</a> (const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a> hnd, unsigned int pin, float value)</td></tr>
<tr class="separator:ga38a215ebc548b0d201fe805c5a8b3797"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga209b5932e8abf5e085c778d0dcac78ab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kv__io.html#ga209b5932e8abf5e085c778d0dcac78ab">kvIoPinGetAnalog</a> (const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a> hnd, unsigned int pin, float *value)</td></tr>
<tr class="separator:ga209b5932e8abf5e085c778d0dcac78ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga78dd0cebc929d0c0d2b801943c6b0ddc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kv__io.html#ga78dd0cebc929d0c0d2b801943c6b0ddc">kvIoPinGetOutputAnalog</a> (const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a> hnd, unsigned int pin, float *value)</td></tr>
<tr class="separator:ga78dd0cebc929d0c0d2b801943c6b0ddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a16c491567db189b36428fe1976364b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kv__io.html#ga7a16c491567db189b36428fe1976364b">kvIoGetModulePins</a> (const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a> hnd, unsigned int module, void *buffer, const unsigned int bufsize)</td></tr>
<tr class="separator:ga7a16c491567db189b36428fe1976364b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga32257d2f426a766a67d689eef5336b81"><td class="memItemLeft" align="right" valign="top"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__kv__io.html#ga32257d2f426a766a67d689eef5336b81">kvIoSetModulePins</a> (const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a> hnd, unsigned int module, const void *buffer, const unsigned int bufsize)</td></tr>
<tr class="separator:ga32257d2f426a766a67d689eef5336b81"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Functions related to handling I/O pins. </p>
<p>The kvIoXxx functions are used for configuring and controlling I/O pins on I/O modules connected to a device.</p>
<p>I/O functions use a pin number to access each pin on connected I/O modules. Pin enumeration is product dependent.</p>
<p>It is required to verify the configuration before it is possible to use any kvIoPinSetXxx()/kvIoPinGetXxx() function. The module configuration can be examined with <a class="el" href="group__kv__io.html#ga0194114ea5bfcbf770d938b613ba87e6">kvIoGetNumberOfPins()</a> and <a class="el" href="group__kv__io.html#ga851cb68946bf38686a065fccf11d6b42">kvIoPinGetInfo()</a>. If the configuration is as expected, a call to <a class="el" href="group__kv__io.html#gaa50d734d29488bea72f5d3808835d7d9">kvIoConfirmConfig()</a> will confirm the configuration. Removing or adding I/O modules will change the configuration and the pins are re-enumerated. It is always required to confirm the new configuration after a configuration change. </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaa50d734d29488bea72f5d3808835d7d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa50d734d29488bea72f5d3808835d7d9">&#9670;&nbsp;</a></span>kvIoConfirmConfig()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a> kvIoConfirmConfig </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a>&#160;</td>
          <td class="paramname"><em>hnd</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function is used to confirm configuration. It is required to call this function, before it is possible to use any kvIoPinSetXxx()/kvIoPinGetXxx() function. After a configuration change, module removal or insertion, it is required to confirm the new configuration.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hnd</td><td>An open handle to a CAN channel.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__kv__io.html">I/O Pin Handling</a> </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Preliminary API that may change. </dd>
<dd>
Not implemented in Linux. </dd></dl>

</div>
</div>
<a id="ga7a16c491567db189b36428fe1976364b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7a16c491567db189b36428fe1976364b">&#9670;&nbsp;</a></span>kvIoGetModulePins()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a> kvIoGetModulePins </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a>&#160;</td>
          <td class="paramname"><em>hnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>module</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>bufsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function is used to read all the pins on one module in a single call.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hnd</td><td>An open handle to a CAN channel. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">module</td><td>The module number, see <a class="el" href="canlib_8h.html#a615221bf13f09e226d9f2fc0a2bdf0ce">kvIO_INFO_GET_MODULE_NUMBER</a>. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>A pointer to a struct that receives the pin values of the module. The struct can be any one of the following depending on the module. The returned type is described in the first byte of the returned struct. See:<ul>
<li><a class="el" href="structkv_io_module_digital.html">kvIoModuleDigital</a></li>
<li><a class="el" href="structkv_io_module_analog.html">kvIoModuleAnalog</a></li>
<li><a class="el" href="structkv_io_module_relay.html">kvIoModuleRelay</a> </li>
</ul>
</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">bufsize</td><td>The size of the struct pointed to by buffer</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__kv__io.html#ga32257d2f426a766a67d689eef5336b81">kvIoSetModulePins()</a> </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Preliminary API that may change. </dd>
<dd>
Not implemented in Linux. </dd></dl>

</div>
</div>
<a id="ga0194114ea5bfcbf770d938b613ba87e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0194114ea5bfcbf770d938b613ba87e6">&#9670;&nbsp;</a></span>kvIoGetNumberOfPins()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a> kvIoGetNumberOfPins </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a>&#160;</td>
          <td class="paramname"><em>hnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int *&#160;</td>
          <td class="paramname"><em>pinCount</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Get the number of I/O pins available from a device.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hnd</td><td>An open handle to a CAN channel. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">pinCount</td><td>A pointer to an int which receives the number of pins.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7a49743d0d438957118b9c6af2e831b209">canOK</a> (zero) if success </dd>
<dd>
<a class="el" href="canstat_8h.html#canERR_xxx">canERR_xxx</a> (negative) if failure</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__kv__io.html#ga851cb68946bf38686a065fccf11d6b42">kvIoPinGetInfo()</a>, <a class="el" href="group__kv__io.html">I/O Pin Handling</a> </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Preliminary API that may change. </dd>
<dd>
Not implemented in Linux. </dd></dl>

</div>
</div>
<a id="ga209b5932e8abf5e085c778d0dcac78ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga209b5932e8abf5e085c778d0dcac78ab">&#9670;&nbsp;</a></span>kvIoPinGetAnalog()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a> kvIoPinGetAnalog </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a>&#160;</td>
          <td class="paramname"><em>hnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function is used to retrieve the voltage level of the specified analog I/O pin.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hnd</td><td>An open handle to a CAN channel. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>The pin number, see <a class="el" href="group__kv__io.html#ga0194114ea5bfcbf770d938b613ba87e6">kvIoGetNumberOfPins</a>. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">value</td><td>A pointer to a float which receives the voltage of the pin.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__kv__io.html#ga38a215ebc548b0d201fe805c5a8b3797">kvIoPinSetAnalog()</a> </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Preliminary API that may change. </dd>
<dd>
Not implemented in Linux. </dd></dl>

</div>
</div>
<a id="gaa5699336bbf78ddbe430dee8658ca7b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa5699336bbf78ddbe430dee8658ca7b3">&#9670;&nbsp;</a></span>kvIoPinGetDigital()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a> kvIoPinGetDigital </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a>&#160;</td>
          <td class="paramname"><em>hnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int *&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function is used to retrieve the value of the specified digital input I/O pin. If the pin is LOW, the integer pointed to by <em>value</em> is assigned zero. If the pin is HIGH, the integer pointed to by <em>value</em> is assigned a '1'.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hnd</td><td>An open handle to a CAN channel. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>The pin number, see <a class="el" href="group__kv__io.html#ga0194114ea5bfcbf770d938b613ba87e6">kvIoGetNumberOfPins</a>. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">value</td><td>A pointer to an unsigned int which receives the value of the pin.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__kv__io.html#gad5a1f760ce49861c5970764024a732c7">kvIoPinSetDigital()</a> </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Preliminary API that may change. </dd>
<dd>
Not implemented in Linux. </dd></dl>

</div>
</div>
<a id="ga851cb68946bf38686a065fccf11d6b42"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga851cb68946bf38686a065fccf11d6b42">&#9670;&nbsp;</a></span>kvIoPinGetInfo()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a> kvIoPinGetInfo </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a>&#160;</td>
          <td class="paramname"><em>hnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>item</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>bufsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function is used to retrieve I/O pin properties.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hnd</td><td>An open handle to a CAN channel. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>The pin number, see <a class="el" href="group__kv__io.html#ga0194114ea5bfcbf770d938b613ba87e6">kvIoGetNumberOfPins</a>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">item</td><td>Type of item to retrieve <a class="el" href="canlib_8h.html#kvIO_INFO_GET_xxx">kvIO_INFO_GET_xxx</a>. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>The address of a buffer which is to receive the data. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">bufsize</td><td>The size of the buffer, matching the size of selected <a class="el" href="canlib_8h.html#kvIO_INFO_GET_xxx">kvIO_INFO_GET_xxx</a> item.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__kv__io.html#ga88dda296acccff6acbc979a94b961188">kvIoPinSetInfo()</a>, <a class="el" href="group__kv__io.html">I/O Pin Handling</a> </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Preliminary API that may change. </dd>
<dd>
Not implemented in Linux. </dd></dl>

</div>
</div>
<a id="ga78dd0cebc929d0c0d2b801943c6b0ddc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga78dd0cebc929d0c0d2b801943c6b0ddc">&#9670;&nbsp;</a></span>kvIoPinGetOutputAnalog()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a> kvIoPinGetOutputAnalog </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a>&#160;</td>
          <td class="paramname"><em>hnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function is used to get the latest set voltage level of an analog I/O pin. This function only returns values as they are presented in memory and the actual value on the output pin may therefore differ.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hnd</td><td>An open handle to a CAN channel. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>The pin number, see <a class="el" href="group__kv__io.html#ga0194114ea5bfcbf770d938b613ba87e6">kvIoGetNumberOfPins</a>. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">value</td><td>A pointer to a float which receives the latest set voltage level of the pin.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__kv__io.html#ga38a215ebc548b0d201fe805c5a8b3797">kvIoPinSetAnalog()</a> </dd></dl>
<dl class="section note"><dt>Note</dt><dd>The actual voltage level on the output pin may differ. </dd>
<dd>
Preliminary API that may change. </dd>
<dd>
Not implemented in Linux. </dd></dl>

</div>
</div>
<a id="gaaa8b56dd310525951aea002efa0d55ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaaa8b56dd310525951aea002efa0d55ef">&#9670;&nbsp;</a></span>kvIoPinGetOutputDigital()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a> kvIoPinGetOutputDigital </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a>&#160;</td>
          <td class="paramname"><em>hnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int *&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function is used to get the latest set value of a digital output I/O pin. If the latest value written to the pin is LOW, the integer pointed to by <em>value</em> is assigned zero. If it is HIGH, the integer pointed to by <em>value</em> is assigned a '1'. This function only returns values as they are presented in memory and the actual value on the output pin may therefore differ.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hnd</td><td>An open handle to a CAN channel. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>The pin number, see <a class="el" href="group__kv__io.html#ga0194114ea5bfcbf770d938b613ba87e6">kvIoGetNumberOfPins</a>. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">value</td><td>A pointer to an unsigned int which receives the latest set value of the pin.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__kv__io.html#gad5a1f760ce49861c5970764024a732c7">kvIoPinSetDigital()</a> </dd></dl>
<dl class="section note"><dt>Note</dt><dd>The actual value on the output pin may differ. </dd>
<dd>
Preliminary API that may change. </dd>
<dd>
Not implemented in Linux. </dd></dl>

</div>
</div>
<a id="ga26aaef6002a588a2ee56bdfc89a703df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga26aaef6002a588a2ee56bdfc89a703df">&#9670;&nbsp;</a></span>kvIoPinGetOutputRelay()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a> kvIoPinGetOutputRelay </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a>&#160;</td>
          <td class="paramname"><em>hnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int *&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function is used to get the latest set value of a relay I/O pin. If <em>value</em> is zero, the relay has been set to OFF. For any non-zero <em>value</em>, the relay has been set to ON. This function returns values as they are presented in memory and the actual state on the relay pin may differ.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hnd</td><td>An open handle to a CAN channel. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>The pin number, see <a class="el" href="group__kv__io.html#ga0194114ea5bfcbf770d938b613ba87e6">kvIoGetNumberOfPins</a>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>A pointer to an unsigned int which receives the latest set value of the pin.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Preliminary API that may change. </dd>
<dd>
Not implemented in Linux. </dd></dl>

</div>
</div>
<a id="ga38a215ebc548b0d201fe805c5a8b3797"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga38a215ebc548b0d201fe805c5a8b3797">&#9670;&nbsp;</a></span>kvIoPinSetAnalog()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a> kvIoPinSetAnalog </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a>&#160;</td>
          <td class="paramname"><em>hnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function is used to set the voltage level of the specified analog I/O pin.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hnd</td><td>An open handle to a CAN channel. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>The pin number, see <a class="el" href="group__kv__io.html#ga0194114ea5bfcbf770d938b613ba87e6">kvIoGetNumberOfPins</a>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>A float which sets a voltage of the pin.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__kv__io.html#ga209b5932e8abf5e085c778d0dcac78ab">kvIoPinGetAnalog()</a> </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Preliminary API that may change. </dd>
<dd>
Not implemented in Linux. </dd></dl>

</div>
</div>
<a id="gad5a1f760ce49861c5970764024a732c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad5a1f760ce49861c5970764024a732c7">&#9670;&nbsp;</a></span>kvIoPinSetDigital()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a> kvIoPinSetDigital </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a>&#160;</td>
          <td class="paramname"><em>hnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function is used to set a digital output I/O pin. If <em>value</em> is zero, the pin is set LOW. For any non-zero <em>value</em>, the pin is set HIGH.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hnd</td><td>An open handle to a CAN channel. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>The pin number, see <a class="el" href="group__kv__io.html#ga0194114ea5bfcbf770d938b613ba87e6">kvIoGetNumberOfPins</a>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>An unsigned int which sets a value of the pin.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Preliminary API that may change. </dd>
<dd>
Not implemented in Linux. </dd></dl>

</div>
</div>
<a id="ga88dda296acccff6acbc979a94b961188"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga88dda296acccff6acbc979a94b961188">&#9670;&nbsp;</a></span>kvIoPinSetInfo()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a> kvIoPinSetInfo </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a>&#160;</td>
          <td class="paramname"><em>hnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>item</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>bufsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function is used to set I/O pin properties, for items that can be changed.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hnd</td><td>An open handle to a CAN channel. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>The pin number, see <a class="el" href="group__kv__io.html#ga0194114ea5bfcbf770d938b613ba87e6">kvIoGetNumberOfPins</a>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">item</td><td>Type of item to set, see <a class="el" href="canlib_8h.html#kvIO_INFO_SET_xxx">kvIO_INFO_SET_xxx</a>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>The address of a buffer contains the data to set. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">bufsize</td><td>The size of the buffer, matching the size of selected <a class="el" href="canlib_8h.html#kvIO_INFO_SET_xxx">kvIO_INFO_SET_xxx</a> item.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__kv__io.html#ga851cb68946bf38686a065fccf11d6b42">kvIoPinGetInfo()</a> </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Preliminary API that may change. </dd>
<dd>
Not implemented in Linux. </dd></dl>

</div>
</div>
<a id="gabb4bfa9d8f76d64065e03a9c95b7dace"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabb4bfa9d8f76d64065e03a9c95b7dace">&#9670;&nbsp;</a></span>kvIoPinSetRelay()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a> kvIoPinSetRelay </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a>&#160;</td>
          <td class="paramname"><em>hnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function is used to control a relay of the specified I/O pin. If <em>value</em> is zero, the relay is set to OFF. For any non-zero <em>value</em>, the relay is set to ON.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hnd</td><td>An open handle to a CAN channel. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>The pin number, see <a class="el" href="group__kv__io.html#ga0194114ea5bfcbf770d938b613ba87e6">kvIoGetNumberOfPins</a>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>An unsigned int which sets a value of the pin. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Preliminary API that may change. </dd>
<dd>
Not implemented in Linux. </dd></dl>

</div>
</div>
<a id="ga32257d2f426a766a67d689eef5336b81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga32257d2f426a766a67d689eef5336b81">&#9670;&nbsp;</a></span>kvIoSetModulePins()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="canstat_8h.html#a52b5e5c71832b0bd3c6a5b1fd48583e7">canStatus</a> kvIoSetModulePins </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="canlib_8h.html#a75f2e3a4c7b1e47c8c6b25b76975b510">CanHandle</a>&#160;</td>
          <td class="paramname"><em>hnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>module</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>bufsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function is used to set all the pins on one single module in a single call.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hnd</td><td>An open handle to a CAN channel. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">module</td><td>The module number, see <a class="el" href="canlib_8h.html#a615221bf13f09e226d9f2fc0a2bdf0ce">kvIO_INFO_GET_MODULE_NUMBER</a>. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>A pointer to a struct that contains the module type and pin values to set. The struct can be any one of the following depending on the module.<ul>
<li><a class="el" href="structkv_io_module_digital.html">kvIoModuleDigital</a></li>
<li><a class="el" href="structkv_io_module_analog.html">kvIoModuleAnalog</a></li>
<li><a class="el" href="structkv_io_module_relay.html">kvIoModuleRelay</a> </li>
</ul>
</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">bufsize</td><td>The size of the struct pointed to by buffer</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__kv__io.html#ga7a16c491567db189b36428fe1976364b">kvIoGetModulePins()</a> </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Note The input Pins are ignored. </dd>
<dd>
Preliminary API that may change. </dd>
<dd>
Not implemented in Linux. </dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.13-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer"> (canlib 5.38) Tue Feb 15 2022</li>
  </ul>
</div>
</body>
</html>
